<?php

/** 
 * @author felipe
 * 
 * 
 */
class App_Model_Db_Categoria extends Voitech_Db{
	protected $_name = 'categoria';
	protected $_primary = 'co_categoria';
	
	static private $instancia;

	/**
	 * @return App_Model_Db_Categoria
	 */
	static public function build() {
		if( !isset( self::$instancia ) ) {
			$classe = __CLASS__;
			self::$instancia = new $classe();
		}
		return self::$instancia;
	}
        
        public function buscarId($co_categoria) {            
            $obSelect = $this->getAdapter()->select()
                                           ->from(array('categoria'=>'categoria'))
                                           ->where('categoria.co_categoria =?',$co_categoria);
            return $this->getAdapter()->fetchRow($obSelect);
        }
	
	public function listarTodos(Voitech_TO $obTO=null){
            $obSelect = $this->select()
            					->from(array('categoria'=>'categoria'),
            				 		   array('*',
                          				  'excluir' => '(CASE 
														    WHEN (SELECT count(*) FROM produto WHERE categoria.co_categoria = produto.co_categoria)> 0 THEN
														    	\'N\'
														    ELSE
														    	\'S\'
														  END)'));

            if( !empty( $obTO->co_categoria ) ) {
                $obSelect->where('categoria.co_categoria =?', $obTO->co_categoria);
            }
            if( !empty( $obTO->no_categoria ) ) {
                $obSelect->where('categoria.no_categoria like ?', "%".$obTO->no_categoria."%");
            }
            if( !empty( $obTO->st_ativo ) ) {
                $obSelect->where('categoria.st_ativo =?', $obTO->st_ativo);
            }
            return $this->getAdapter()->fetchAll($obSelect);			   						   
	}
}